(C) 1996 AROS - The Amiga Replacement OS


NAME
#include <intuition/intuition.h>
#include <proto/intuition.h>
IPTR DoGadgetMethodA()
SYNOPSIS
struct Gadget * gad
struct Window * win
struct Requester * req
Msg msg

LOCATION
In IntuitionBase at offset 135
FUNCTION
Invokes a boopsi method on a object with a GadgetInfo derived from the supplied window or requester parameter.

INPUTS
gad
The gadget to work on
win
The window which contains the gadget or the requester with the gadgets.
req
If the gadget is in a requester, you must specify that one, too.
message
Send this message to the gadget.
RESULT
The result depends on the contents of the message sent to the gadget.

NOTES
EXAMPLE
BUGS
SEE ALSO
INTERNALS
I have derived from a simular function from ClassAct where I have to "fake" the function which is not implemented under OS 2.04. There are likely a few differences between this routine and the real code, but this gets the job done.

One thing to note, the Amiga Rom routinecauses some form of (layer?) locking. I presume the point of the lock is to avoid removing the gadget from the window durring a refresh, or to avoid resizing the window durring refresh, etc.

This locking is fairly obvious within Workbench itself. When refreshing most any boopsi gadget(s) via RefreshGList() and you try to drag a Workbench icon you will get stuck in a layer lock. Workbench has a deadlock timer and is smart enough to release the lock and abort the drag. With this routine below this locking does not occur. Some might call it a good thing, however the issue should be revisited once more of Intuition has been implemented - if it hasn't been already?!. :)

HISTORY
27.01.1997 ldp
Polish
10.12.1996 aros
Moved #include into first column to allow makedepend to see it.
08.11.1996 aros
All OS function use now Amiga types

Moved intuition-driver protos to intuition_intern.h

25.10.1996 aros
New functions